assume(0 < R1 & 0 < R2 & 0 < R3 & 0 < R & 0 < C & 0 < U & 0 < T)
syms DuC i1 i2 iC iR2 u uC uR1 uR2 ug
jednacine = [ug == uR1 + uC,...
u == -(R3 * i2)]
jednacine = 
jednacineIzvoda = eliminate(jednacine, [i1, iC, uR1, iR2, uR2, i2, u])
jednacineIzvoda = 
jednacineStanje = solve(jednacineIzvoda, DuC)
jednacineStanje =

PromenljiveStanjaIzvodi = [uC == uC(t), DuC == diff(uC(t), t)]
PromenljiveStanjaIzvodi(t) =

zamene = [R1 == R, R2 == R, R3 == R, T == R * C]
zamene = 
pobuda = ug == heaviside(t)
pobuda = 
JS = subs(jednacineStanje, lhs([PromenljiveStanjaIzvodi pobuda zamene]), rhs([PromenljiveStanjaIzvodi pobuda zamene]))
JS =

f_uC = dsolve(diff(uC(t)) == JS, uC(0)==0, 'IgnoreAnalyticConstraints', false)
f_uC =

uC_1(t) = int(ug_1(tau) * g_uC(t-tau), tau, 0, t)
uC_1(t) =

i1_1(t) = subs(1/R * (ug_1(t) - uC_1(t)), lhs(zamene), rhs(zamene));
u2_1(t) = simplify( -(R * i2_1(t)) )
u2_1(t) =

assume((0 < T)&(T < t) & (t <= 2*T));
uC_2(t) = int(ug_1(tau) * g_uC(t - tau), tau, sym(0), T) + int(ug_2(tau) * g_uC(t - tau), tau, T, t)
uC_2(t) =

simplify(subs(uC_2(t), lhs(zamene), rhs(zamene)))
ans =

i1_2(t) = subs(1/R * (ug_2(t) - uC_2(t)), lhs(zamene), rhs(zamene));
u2_2(t) = simplify( -(R * i2_2(t)) )
u2_2(t) =

assume((2*T < t) & (0 < T));
uC_3(t) = int(ug_1(tau) * g_uC(t - tau), tau, 0, T) + int(ug_2(tau) * g_uC(t - tau), tau, T, 2*T)
uC_3(t) =

i1_3(t) = subs(1/R * (ug_3(t) - uC_3(t)), lhs(zamene), rhs(zamene));
u2_3(t) = simplify( -(R * i2_3(t)) )
u2_3(t) =

simplify(u2_3(t))
ans =

vrednosti = [R == 1e3, C == 1e-6, U == 10, T == 1e-3]
vrednosti =

u2(t) = simplify(subs(piecewise((0 < t) <= T, u2_1(t),...
(T < t)&(t<=2*T), u2_2(t),...
(2*T < t), u2_3(t)), lhs(vrednosti), rhs(vrednosti)))
u2(t) =

ug(t) = subs(ug_tot(t), lhs(vrednosti),rhs(vrednosti))
ug(t) =

fplot( t, u2(t), [0 5e-3])
fplot( t, ug(t), [0 5e-3])
legend({'u2(t)','ug(t)'})